------------------------------- Chapitre II - Quelques principes -------------------------------
Pré-analyse
Cible :
Outils nécessaires :
OllyDbg (by Oleh Yuschuk)
Peid 0.95 (by snaker)
RDG Packer Detector v0.7.0
(by RDGMax)
Protection ID v0.6.4.0
(by CDKiLLER & TippeX)
ResHacker v3.6.0.92
(by Angus Johnson)
(Tous les programmes et outils de ce tutoriel sont stockés dans le répertoire Pack).
1 - Introduction
Ouvrons notre cible pour voir comment elle se présente :
Tout d'abord une fenêtre d'accueil nous prévient que l'on est en présence d'une version de démonstration. C'est ce que l'on appelle un nagsceen, de l'anglais nag : houspiller, embêter + screen : écran. Ces fenêtres apparaissent souvent en début et/ou en fin de programme, et parfois durant l'utilisation de certaines fonctions afin de ralentir l'utilisateur et le pousser à acheter une licence pour les faire disparaître.
Puis, après un peu d'attente :
On a donc 3 versions plus ou moins limitées et on voit dans la barre de titre le nombre de jours restants pour notre version. On jette un coup d'œil au menu Fichier :
On voit qu'effectivement les commandes "Enregistrer" et "Enregistrer sous ..." ne sont pas activées. On regarde le menu Aide, on clique sur "Licence" et une boite de dialogue s'affiche :
Nous avons une paire classique nom/serial à saisir. Nos objectifs seront donc :
2 - Détection de protection
Nous allons prendre de bonnes habitudes. Dorénavant, avant de commencer à reverser une cible, nous allons systématiquement utiliser des scanners de protections. Ces petits utilitaires nous permettent de savoir sous quel langage a été conçu un soft, quel compilateur a été utilisé, quelle(s) protection(s) sont présente(s) ...
Je vais vous en présenter trois, les plus courants. Après, chacun aura son préféré qu'il utilisera plus régulièrement, mais il est toujours bon d'en utiliser un deuxième afin de valider les résultats du premier.
Il s'agit du plus connu. Lancer Peid.exe, cliquez sur [...] (1) pour sélectionner la cible à analyser, le résultat s'affiche (2) :
Aucune protection trouvée, programme codé en assembleur (Nasm et Tasm sont des compilateurs pour le langage asm).
C'est celui que personnellement j'utilise le plus souvent. Double-clic sur RDG Packer Detector v0.7.0.exe. A la première utilisation, aller sur MENU (1), puis config et dans Lenguaje, sélectionnez French.ini et fermez la fenêtre de configuration. Sélectionnez M-B (2) pour un scan plus approfondi, clic sur Ouvrir (3) pour sélectionner la cible, clic sur Detecter (4) et le résultat s'affiche :
On obtient le même résultat : pas de protection détectée, programme codé en asm.
Peut-être un peu plus complet en détection de protection que les deux premiers,il n'est pas compatible avec win 7 ou 8. Une nouvelle version semble être en préparation (la v6.5.5) mais la date de sortie n'est pas encore connue au moment où j'écris ces lignes. Pour pouvoir l'utiliser, il faut le passer en mode compatibilité XP SP3.
Lancez protection_id.exe, cliquez sur le bouton Log Window (1) pour avoir l'affichage des résultats, clic sur Scan (2) puis Single File, sélectionnez la cible, Ouvrir et le résultat s'affiche (3) :
Et toujours aucune protection détectée ...
Voilà pour une présentation simplifiée de ces trois outils, à vous de découvrir les différentes possibilités de chacun d'eux et de faire votre choix. Sachez que ces utilitaires se servent de fichier de signatures, pensez donc à faire des mises à jour de temps en temps afin qu'ils restent efficace.
Maintenant que nous savons que notre cible n'est pas protégée, attaquons le reverse ...